package com.prueba.proyecto.client.core;

import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.event.shared.EventBus;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.Button;
import com.google.inject.Inject;
import com.gwtplatform.dispatch.shared.DispatchAsync;
import com.gwtplatform.mvp.client.Presenter;
import com.gwtplatform.mvp.client.View;
import com.gwtplatform.mvp.client.annotations.NameToken;
import com.gwtplatform.mvp.client.annotations.ProxyStandard;
import com.gwtplatform.mvp.client.proxy.ProxyPlace;
import com.gwtplatform.mvp.client.proxy.RevealContentEvent;
import com.prueba.proyecto.client.place.NameTokens;
import com.prueba.proyecto.shared.AccionPrueba;
import com.prueba.proyecto.shared.AccionPruebaResult;

public class InicioPresenter extends
		Presenter<InicioPresenter.MyView, InicioPresenter.MyProxy> {

	public interface MyView extends View {
		public Button getButton();
		
	}

	@ProxyStandard
	@NameToken(NameTokens.inicio)
	public interface MyProxy extends ProxyPlace<InicioPresenter> {
	}

	private DispatchAsync dispacther;

	

	@Inject
	public InicioPresenter(final EventBus eventBus, final MyView view,
			final MyProxy proxy,DispatchAsync dispacther) {
		super(eventBus, view, proxy);
		this.dispacther=dispacther;
	}

	@Override
	protected void revealInParent() {
		RevealContentEvent.fire(this, HeaderPresenter.SLOT_content, this); 
		//RevealRootContentEvent.fire(this, this);
	}

	@Override
	protected void onBind() {
		super.onBind();
		getView().getButton().addClickHandler(new ClickHandler() {
			
			@Override
			public void onClick(ClickEvent event) {
				// TODO Auto-generated method stub
				dispacther.execute(new AccionPrueba("ss"),new AsyncCallback<AccionPruebaResult>() {

					@Override
					public void onFailure(Throwable caught) {
						// TODO Auto-generated method stub
						
					}

					@Override
					public void onSuccess(AccionPruebaResult result) {
						// TODO Auto-generated method stub
						System.out.println(result.getResultado());
					}
				} );
			}
		});
	}
}
